package org.example2;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 *
 *  如果spring版本用3.2.0.RELEASE,本模块必须用 jdk 1.7 ,不然报错. Failed to read candidate component class: file.无法加载
 *   applicationContext.xml配置文件
 *
 *   如果spring版本用4.3.7.RELEASE版本,jdk用1.8就没有问题
 *
 *   @Autowired  在3.2.0.RELEASE中,作用在构造方法上时,只能作用在 "有参构造"上,不能作用在"无参构造"上,不然会报错
 *                           java.lang.IllegalStateException:Autowired annotation requires at least one argument
 *                          如果有参构造使用了@Autowired注解,spring实例化对象的时候,就不会再调用无参构造了
 *                          在4.3.7.RELEASE中,既可以作用到 "无参构造 "上,也可以作用到 "有参构造 "上,但是两者不能并存.
 *
 *                          在两个版本中,作用在除构造方法以外的方法,"有参和无参"都可以
 */
public class AppSpringRunner {

    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext
                ("applicationContext.xml");
        UserService userService =(UserService) applicationContext.getBean("userService");
        userService.query();

    }
}
